package com.lixixi.tingshu.album.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lixixi.tingshu.model.album.TrackInfo;
import com.lixixi.tingshu.query.album.TrackInfoQuery;
import com.lixixi.tingshu.vo.album.AlbumTrackListVo;
import com.lixixi.tingshu.vo.album.TrackInfoVo;
import com.lixixi.tingshu.vo.album.TrackListVo;
import com.lixixi.tingshu.vo.album.TrackStatVo;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface AlbumTrackInfoService extends IService<TrackInfo> {
	JSONObject uploadTrack(MultipartFile multipartFile) throws IOException;

	void saveTrackInfo(TrackInfoVo trackInfoVo);

	IPage<TrackListVo> findUserTrackPage(Long page, Long limit, TrackInfoQuery trackInfoQuery);

	void updateTrackInfo(Long trackId, TrackInfoVo trackInfoVo) throws TencentCloudSDKException;

	void removeTrackInfo(Long trackId);

	IPage<AlbumTrackListVo> findAlbumTrackPage(Long albumId, Long page, Long limit);

	TrackStatVo getTrackStatVo(Long trackId);

	List<Map<String, Object>> findUserTrackPaidList(Long trackId);

	List<TrackInfo> getOrderTrackInfoList(Long itemId, Integer trackCount);
}
